메시지 인증 코드
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
메시지 인증 코드(MAC)는 메시지의 무결성을 보장하기 위해 사용되는 암호화 기법이다. MAC은 키 생성, MAC 생성, 확인의 세 가지 알고리즘으로 구성되며, 송신자와 수신자는 통신 전에 동일한 키를 공유해야 한다. MAC은 암호화 해시 함수와 유사하지만, 선택 평문 공격에 대한 존재적 위조에 대한 내성이 있어야 한다. MAC은 디지털 서명과 달리 부인 방지를 제공하지 않지만, SSH와 같은 다양한 통신 프로토콜에서 데이터 무결성을 위해 사용된다. MAC 알고리즘은 암호화 해시 함수, 블록 암호, 또는 보편 해싱을 기반으로 구현될 수 있으며, 다양한 표준에 의해 정의된다.
더 읽어볼만한 페이지
- 메시지 인증 코드 - HMAC
HMAC(Keyed-Hash Message Authentication Code)는 공유된 비밀 키와 암호화 해시 함수를 사용하여 메시지의 무결성을 검증하는 메시지 인증 코드로서, IPsec, SSH, TLS, JSON 웹 토큰 등 다양한 보안 프로토콜에서 활용된다. - 메시지 인증 코드 - Poly1305
Poly1305는 16바이트 비밀 키와 메시지를 입력으로 받아 16바이트 해시값을 출력하는 메시지 인증 코드 알고리즘으로, 카터-웨그만 구조에 기반하여 OpenSSH, 구글 Chrome, 안드로이드 등에서 메시지 인증 및 암호화에 활용되며 빠른 계산 속도와 효율적인 작동이 특징이다. - 암호 알고리즘 - 이진 코드
이진 코드는 0과 1을 사용하여 정보를 표현하는 시스템으로, 고대 중국의 주역에서 기원하며, 컴퓨터 과학, 통신 등 다양한 분야에서 활용된다. - 암호 알고리즘 - 디지털 서명 알고리즘
디지털 서명 알고리즘(DSA)은 1991년 미국에서 제안된 공개 키 서명 표준으로, 국립표준기술연구소(NIST)에 의해 연방 표준으로 채택되었으나, 2023년 표준에서는 서명 생성을 금지하고 기존 서명의 검증만 허용한다.
메시지 인증 코드 |
---|
2. 용어
'''메시지 인증 코드'''(MAC)는 '''메시지 무결성 코드'''(Message Integrity Code, '''MIC''')라는 용어로 대체되기도 하는데, 이는 통신 분야에서 미디어 접근 제어 주소(MAC 주소)와의 혼동을 피하기 위함이다.[1][22] 하지만 일부 저자들은 MIC를 단일 메시지를 고유하지만 불투명하게 식별하는 데에만 사용되는 메시지 다이제스트를 지칭하는 데 사용하기도 한다.[2][23] RFC 4949는 "메시지 무결성 코드" (MIC)라는 용어의 사용을 피하고, 대신 "체크섬", "오류 감지 코드", "해시", "키 기반 해시", "메시지 인증 코드", 또는 "보호된 체크섬"을 사용할 것을 권장한다.
메시지 인증 코드(MAC) 시스템은 키 생성, MAC 생성, 확인의 세 가지 알고리즘으로 구성된다. 안전한 MAC은 키를 모르는 공격자가 임의의 메시지에 대한 유효한 태그를 계산하는 것이 계산상 불가능해야 한다. 즉, 공격자가 알려진 또는 선택된 메시지 조건에서 태그 위조를 시도하더라도, 키를 모르면 성공할 수 없어야 한다.[3]
3. 정의
3. 1. 키 생성
키 생성 알고리즘은 키 공간에서 임의로 균일하게 키를 선택한다.[3] 형식적으로, 메시지 인증 코드(MAC) 시스템에서 키 생성기 ''G''는 보안 매개변수 ''n''에 대해 1''n''을 입력으로 받아 키 ''k''를 생성한다.[5]
3. 2. MAC 생성
MAC 생성 알고리즘 ''S''(서명)는 키 ''k''와 입력 문자열 ''x''에 대해 태그 ''t''를 출력한다.[3]
3. 3. 확인
확인 알고리즘(''V'')은 키 ''k'', 메시지 ''x'', 태그 ''t''를 입력으로 받아 메시지가 진짜인지 확인한다. 메시지와 태그가 변조되지 않았다면 'accepted'를, 그렇지 않으면 'rejected'를 반환한다.[3]
형식적으로, 메시지 인증 코드 (MAC) 시스템은 세 가지 알고리즘 (''G'', ''S'', ''V'')으로 구성되며, 이 중 ''V''는 확인 알고리즘이다.[4]
''S''(서명)와 ''V''(확인)는 다음 조건을 만족해야 한다.
: Pr [ ''k'' ← ''G''(1''n''), ''V''( ''k'', ''x'', ''S''(''k'', ''x'') ) = ''accepted'' ] = 1[5]
이는 키 ''k''가 주어지고, ''S''(서명) 알고리즘을 통해 생성된 태그 ''t''에 대해 ''V''(확인) 알고리즘이 'accepted'를 반환할 확률이 1임을 의미한다.
또한, MAC은 모든 효율적인 적대자 ''A''에 대해 위조 불가능해야 한다.[6] 즉, 적대자가 서명 오라클 ''S''(''k'', · )에 접근할 수 있더라도, 이전에 질의하지 않은 메시지 ''x''에 대한 유효한 태그 ''t''를 찾아낼 확률은 무시할 만큼 작아야 한다.
4. 보안
MAC 함수는 암호화 해시 함수와 유사하지만, 더 강력한 보안 요구 사항을 갖는다. MAC 함수는 선택 메시지 공격에 대한 존재적 위조에 저항해야 한다. 즉, 공격자가 비밀 키를 알고 있고 자신이 선택한 메시지에 대한 MAC을 생성하는 오라클에 접근할 수 있더라도, 오라클에 질의되지 않은 다른 메시지에 대한 MAC을 추측하는 것은 계산상 불가능해야 한다.[4]
MAC은 디지털 서명과 달리, MAC 값을 생성하고 확인하는 데 동일한 비밀 키를 사용한다.[4] 이는 메시지 송신자와 수신자가 통신 전에 동일한 키에 동의해야 함을 의미하며, 대칭 암호화와 유사하다. 이러한 특성 때문에 MAC은 부인 방지 기능을 제공하지 않는다. MAC을 확인할 수 있는 모든 사용자는 다른 메시지에 대한 MAC을 생성할 수도 있기 때문이다. 반면, 디지털 서명은 키 쌍의 개인 키를 사용하여 생성되므로, 디지털 서명은 문서가 해당 소유자에 의해서만 서명되었음을 증명하고 부인 방지를 제공한다.[4]
5. 구현
MAC 알고리즘은 암호화 해시 함수(HMAC) 또는 블록 암호 알고리즘 (OMAC, CCM, GCM, PMAC)과 같은 다른 암호 기본 요소로부터 구성될 수 있다. 가장 빠른 MAC 알고리즘 중 일부는 UMAC-VMAC 및 Poly1305-AES와 같이 보편 해싱을 기반으로 구성된다.[8] SipHash와 같은 키가 지정된 해시 알고리즘도 정의상 MAC이며, 보편 해싱 기반 MAC보다 훨씬 빠를 수 있다.[9]
MAC 알고리즘은 둘 이상의 암호 기본 요소를 의도적으로 결합하여 그중 하나라도 나중에 취약점으로 밝혀지더라도 보호 기능을 유지할 수 있도록 설계될 수 있다. 예를 들어, 전송 계층 보안(TLS) 버전 1.2 이전에는 입력 데이터를 SHA-1 및 SHA-2와 같은 서로 다른 해싱 기본 요소로 각각 처리한 다음 XOR하여 MAC을 출력하도록 두 부분으로 분할했다.
MAC 알고리즘은 해시 함수를 사용하는 방식 (HMAC), 블록 암호 알고리즘을 사용하는 방식 (OMAC/CMAC, CBC-MAC, PMAC) 등 다양한 방식으로 구현될 수 있다. Poly1305 등의 고속 MAC 알고리즘은 범용 해싱을 기반으로 한다.[24]
일회용 MAC에 대한 자세한 내용은 #일회용 MAC 하위 섹션을 참고하라.
5. 1. 일회용 MAC
보편 해싱, 특히 쌍별 독립 해시 함수는 키가 한 번만 사용되는 경우 안전한 메시지 인증 코드를 제공한다. 이는 일회용 패드의 MAC 버전으로 볼 수 있다.[10][25]가장 간단한 쌍별 독립 해시 함수는 무작위 키 ''key'' = (''a'', ''b'')로 정의되며, 메시지 ''m''에 대한 MAC 태그는 ''tag'' = (''am'' + ''b'') mod ''p''로 계산된다. 여기서 ''p''는 소수이다.
더 일반적으로, ''k''-독립 해싱 함수는 ''k''-방향 독립 해싱 함수에 대해 키가 ''k''번 미만으로 사용되는 한 안전한 메시지 인증 코드를 제공한다.
키를 모르는 경우, 어떤 메시지 ''m''의 해시 값 을 알아도 다른 메시지 의 해시 값 을 추측할 수 없는 속성을 Pairwise independent 속성이라고 한다. 이러한 속성을 가진 해시 함수는 소수 ''p''에 대해 키를 ''k''=(a, b)로 했을 때, 메시지 ''m''의 해시 값(MAC에서의 태그)은 와 같이 간단하게 만들 수 있다.
6. 표준
MAC 알고리즘은 다양한 표준에 의해 정의된다. 여기에는 다음이 포함된다.
- FIPS PUB 113 ''컴퓨터 데이터 인증''[27]은 2002년에 철회되었으며,[28] DES를 기반으로 하는 알고리즘을 정의한다.
- FIPS PUB 198-1 ''키 해시 메시지 인증 코드(HMAC)''[29]
- ISO/IEC 9797-1 블록 암호를 사용하는 메커니즘[30]
- ISO/IEC 9797-2 전용 해시 함수를 사용하는 메커니즘[31]
ISO/IEC 9797-1 및 -2는 모든 블록 암호 또는 해시 함수와 함께 사용할 수 있는 일반 모델과 알고리즘, 그리고 다양한 매개변수를 정의한다. 이러한 모델과 매개변수를 통해 매개변수를 지정하여 보다 구체적인 알고리즘을 정의할 수 있다. 예를 들어, FIPS PUB 113 알고리즘은 패딩 방법 1 및 DES의 블록 암호 알고리즘을 사용하는 ISO/IEC 9797-1 MAC 알고리즘 1과 기능적으로 동일하다.
7. MAC 사용 예제
메시지 발신자는 MAC 알고리즘을 실행하여 MAC 데이터 태그를 생성한다. 메시지와 MAC 태그는 수신자에게 전송된다. 수신자는 받은 메시지에 대해 동일한 키를 사용하여 동일한 MAC 알고리즘을 실행, 두 번째 MAC 데이터 태그를 생성한다. 수신자는 자신이 생성한 MAC 태그와 송신자로부터 받은 MAC 태그를 비교한다. 두 태그가 일치하면, 메시지가 전송 중 변경되거나 변조되지 않았음을 확인할 수 있다 (데이터 무결성).[20]
하지만, 재전송 공격을 방지하려면 메시지 자체에 해당 메시지가 한 번만 전송됨을 보장하는 데이터(예: 타임스탬프, 시퀀스 번호, 일회용 MAC)를 포함해야 한다. 그렇지 않으면 공격자가 메시지 내용을 이해하지 못하더라도 메시지를 기록했다가 나중에 다시 재생하여, 원래 발신자와 동일한 결과를 얻을 수 있다.
MAC은 SSH2에서 전송 계층의 데이터 무결성을 보장하는 데 사용된다. MAC 검증에 사용되는 공통 키는 통신 암호화 및 복호화에 사용되는 세션 키와 마찬가지로, 세션 시작 시 디피-헬만 키 교환을 통해 생성된 공유 비밀로부터 해시 함수를 이용해 생성된다. 통신이 시작되면 SSH 프로그램은 수신된 패킷을 복호화한 후, MAC과 계산 값을 비교하여 데이터의 완전성을 검증한다.[26]
참조
[1]
서적
IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
http://standards.iee[...]
IEEE-SA
2007-06-12
[2]
웹사이트
CS 513 System Security -- Hashes and Message Digests
http://www.cs.cornel[...]
2023-12-20
[3]
문서
[4]
문서
[5]
문서
[6]
문서
[7]
서적
Advances in Cryptology – CRYPTO 2024
Springer Nature Switzerland
2024
[8]
간행물
VMAC: Message Authentication Code using Universal Hashing
http://www.fastcrypt[...]
2010-03-16
[9]
웹사이트
SipHash: a fast short-input PRF
https://131002.net/s[...]
2012-09-18
[10]
서적
Advances in Cryptology – Proceedings of CRYPTO 84
Springer
[11]
간행물
Information-Theoretically Secure Data Origin Authentication with Quantum and Classical Resources
2020
[12]
웹사이트
FIPS PUB 113 ''Computer Data Authentication''
http://www.itl.nist.[...]
2010-10-10
[13]
웹사이트
Federal Information Processing Standards Publications, Withdrawn FIPS Listed by Number
http://www.itl.nist.[...]
2010-10-10
[14]
웹사이트
"''The Keyed-Hash Message Authentication Code (HMAC)''"
http://csrc.nist.gov[...]
2023-12-20
[15]
문서
SHA-3 Derived Functions
https://nvlpubs.nist[...]
[16]
웹사이트
ISO/IEC 9797-1:2011
https://www.iso.org/[...]
2023-12-20
[17]
웹사이트
ISO/IEC 9797-2:2011
https://www.iso.org/[...]
2023-12-20
[18]
웹사이트
ISO/IEC 9797-3:2011
https://www.iso.org/[...]
2023-12-20
[19]
웹사이트
ISO/IEC 29192-6:2019
https://www.iso.org/[...]
2023-12-20
[20]
Citation
Mac® Security Bible
Wiley Publishing, Inc.
2011-11-01
[21]
문서
[22]
서적
IEEE 802.11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications
http://standards.iee[...]
IEEE-SA
2007-06-12
[23]
문서
Fred B Schneider, Hashes and Message Digests, Cornell University
http://www.cs.cornel[...]
[24]
간행물
VMAC: Message Authentication Code using Universal Hashing
http://www.fastcrypt[...]
2010-03-16
[25]
서적
Advances in Cryptology: Proceedings of CRYPTO 84
Springer
[26]
웹사이트
rfc4251
http://www.ietf.org/[...]
2011-10-01
[27]
웹인용
FIPS PUB 113 Computer Data Authentication
http://www.itl.nist.[...]
2019-12-13
[28]
웹인용
Federal Information Processing Standards Publications, Withdrawn FIPS Listed by Number
http://www.itl.nist.[...]
2019-12-13
[29]
문서
The Keyed-Hash Message Authentication Code (HMAC)
http://csrc.nist.gov[...]
[30]
문서
ISO/IEC 9797-1 Information technology — Security techniques — Message Authentication Codes (MACs) — Part 1: Mechanisms using a block cipher
http://www.iso.org/i[...]
[31]
문서
ISO/IEC 9797-2 Information technology — Security techniques — Message Authentication Codes (MACs) — Part 2: Mechanisms using a dedicated hash-function
http://www.iso.org/i[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com